texthandle: Set prelight state on the pointer-interacted handle
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 4 Jun 2015 17:49:33 +0000 (19:49 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 5 Jun 2015 12:57:43 +0000 (08:57 -0400)
This will be useful with the theming changes to come.

https://bugzilla.gnome.org/show_bug.cgi?id=750396

gtk/gtktexthandle.c

index 7faea0ceadf6f52c03fac45f17680b9c5a28cf28..07a9569603a3dd76a3a1fe248149c29fdba6331b 100644 (file)
@@ -221,6 +221,15 @@ gtk_text_handle_widget_event (GtkWidget     *widget,
       priv->windows[pos].dragged = FALSE;
       gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_ACTIVE);
     }
+  else if (event->type == GDK_ENTER_NOTIFY)
+    gtk_text_handle_set_state (handle, pos, GTK_STATE_FLAG_PRELIGHT);
+  else if (event->type == GDK_LEAVE_NOTIFY)
+    {
+      if (!priv->windows[pos].dragged &&
+          (event->crossing.mode == GDK_CROSSING_NORMAL ||
+           event->crossing.mode == GDK_CROSSING_UNGRAB))
+        gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_PRELIGHT);
+    }
   else if (event->type == GDK_MOTION_NOTIFY &&
            event->motion.state & GDK_BUTTON1_MASK &&
            priv->windows[pos].dragged)
@@ -277,6 +286,8 @@ _gtk_text_handle_ensure_widget (GtkTextHandle         *handle,
       gtk_widget_set_events (widget,
                              GDK_BUTTON_PRESS_MASK |
                              GDK_BUTTON_RELEASE_MASK |
+                             GDK_ENTER_NOTIFY_MASK |
+                             GDK_LEAVE_NOTIFY_MASK |
                              GDK_POINTER_MOTION_MASK);
 
       g_signal_connect (widget, "draw",